package com.Questions.hash;


/**
 * 1370 上升下降字符串
 */
public class leetcode1370 {
    public String sortString(String s) {
        int[] num = new int[26];
        for (int i = 0; i < s.length(); i++) {
            num[s.charAt(i) - 'a']++;
        }// 统计每个字符在字符串中出现的次数
        StringBuffer ret = new StringBuffer();
        while (ret.length() < s.length()) {//采用模拟的思想 将所有字符都选一次
            for (int i = 0; i < 26; i++) {// 通过数组的遍历直接得到升序的排列
                if (num[i] > 0) {// 如果存在 直接将其加入
                    ret.append((char) (i + 'a'));
                    num[i]--;
                }
            }
            for (int i = 25; i >= 0; i--) {// 同理 降序排列
                if (num[i] > 0) {// 如果存在 直接将其加入即可
                    ret.append((char) (i + 'a'));
                    num[i]--;
                }
            }
        }
        return ret.toString();
    }

}
